package com.asp.aspchain.core.model;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;

import java.io.Serializable;
import java.util.Date;

/**
 * 
 *
 * @author aspire
 * @Date 2018-11-28 14:28
 */
@TableName("t_abc_app_base")
public class AppBaseModel extends Model<AppBaseModel> {

    private static final long serialVersionUID = 1L;

    /**
     * appid （自增长）
     * 
     */
    @TableId(value = "appid", type = IdType.AUTO)
    private Integer appid;
    /**
     * app 标识(index)
     * 
     */
    private String appmark;
    /**
     * app 名称
     * 
     */
    private String appname;
    /**
     * Key值，接入认证使用
     * 
     */
    private String appkey;
    /**
     * token余额类型，eth (以太币）
     * 
     */
    private String tokentype;
    /**
     * 智能合约地址如果tokentype为eth，默认为0x0，就是没有智能合约
     * 
     */
    private String contractid;
    /**
     * 智能合约名称
     * 
     */
    private String contracttitle;
    /**
     * 创建时间
     * 
     */
    private Date createtime;
    /**
     * 更新时间
     * 
     */
    private Date updatetime;
    /**
     * 兑换汇率和Gwei的对应关系 0 表示10**0 1 表示 10**1 默认为0
     * 
     */
    private Integer ratio;
    /**
     * 默认的token默认为0
     * 
     */
    private Long tokendft;
    /**
     * 当EOA账户时候抵消的gas，单位为wei默认为0
     * 
     */
    private Long gas;
    /**
     * 0不需要通知，1需要通知 默认为0
     * 
     */
    private Integer isnotify;
    /**
     * 0 不需要，1需要 是否查询区块余额
     * 0 不需要，1需要 是否查询区块余额,默认为0
     */
    private Integer istobblanceqry;
    /**
     * 是否资产保存0 不需要，1需要 默认为0
     * 
     */
    private Integer isassetstore;
    /**
     * 是否资产转移 0 不需要，1需要 默认为0
     * 
     */
    private Integer isassettransfer;
    /**
     * COA账户下，如果为0，则默认自己钱包账户如果为1。 则自己生成账户。默认为0.
     * 
     */
    private Integer isdiyaccount;
    /**
     * 00 eoa 账户 01 coa 账户
     * 
     */
    private String accounttype;
    /**
     * asset (资产类token） value （价值类token） hybrid （即是资产类又是价值类）
     * 
     */
    private String tokencategory;
    /**
     * 对端的url
     * 
     */
    private String notifyurl;

    public Integer getAppid() {
           return appid;
    }

    public void setAppid(Integer appid) {
     	this.appid = appid;
    }

    public String getAppmark() {
           return appmark;
    }

    public void setAppmark(String appmark) {
     	this.appmark = appmark;
    }

    public String getAppname() {
           return appname;
    }

    public void setAppname(String appname) {
     	this.appname = appname;
    }

    public String getAppkey() {
           return appkey;
    }

    public void setAppkey(String appkey) {
     	this.appkey = appkey;
    }

    public String getTokentype() {
           return tokentype;
    }

    public void setTokentype(String tokentype) {
     	this.tokentype = tokentype;
    }

    public String getContractid() {
           return contractid;
    }

    public void setContractid(String contractid) {
     	this.contractid = contractid;
    }

    public String getContracttitle() {
           return contracttitle;
    }

    public void setContracttitle(String contracttitle) {
     	this.contracttitle = contracttitle;
    }

    public Date getCreatetime() {
           return createtime;
    }

    public void setCreatetime(Date createtime) {
     	this.createtime = createtime;
    }

    public Date getUpdatetime() {
           return updatetime;
    }

    public void setUpdatetime(Date updatetime) {
     	this.updatetime = updatetime;
    }

    public Integer getRatio() {
           return ratio;
    }

    public void setRatio(Integer ratio) {
     	this.ratio = ratio;
    }

    public Long getTokendft() {
           return tokendft;
    }

    public void setTokendft(Long tokendft) {
     	this.tokendft = tokendft;
    }

    public Long getGas() {
           return gas;
    }

    public void setGas(Long gas) {
     	this.gas = gas;
    }

    public Integer getIsnotify() {
           return isnotify;
    }

    public void setIsnotify(Integer isnotify) {
     	this.isnotify = isnotify;
    }

    public Integer getIstobblanceqry() {
           return istobblanceqry;
    }

    public void setIstobblanceqry(Integer istobblanceqry) {
     	this.istobblanceqry = istobblanceqry;
    }

    public Integer getIsassetstore() {
           return isassetstore;
    }

    public void setIsassetstore(Integer isassetstore) {
     	this.isassetstore = isassetstore;
    }

    public Integer getIsassettransfer() {
           return isassettransfer;
    }

    public void setIsassettransfer(Integer isassettransfer) {
     	this.isassettransfer = isassettransfer;
    }

    public Integer getIsdiyaccount() {
           return isdiyaccount;
    }

    public void setIsdiyaccount(Integer isdiyaccount) {
     	this.isdiyaccount = isdiyaccount;
    }

    public String getAccounttype() {
           return accounttype;
    }

    public void setAccounttype(String accounttype) {
     	this.accounttype = accounttype;
    }

    public String getTokencategory() {
           return tokencategory;
    }

    public void setTokencategory(String tokencategory) {
     	this.tokencategory = tokencategory;
    }

    public String getNotifyurl() {
           return notifyurl;
    }

    public void setNotifyurl(String notifyurl) {
     	this.notifyurl = notifyurl;
    }

    @Override
    protected Serializable pkVal() {
           return this.appid;
    }

    @Override
    public String toString() {
        return ReflectionToStringBuilder.toString(this);
    }
}
